JAVA中final关键字修饰变量的用法及深入解析【建议收藏】 | 您所在的位置:网站首页 › js 静态变量用法有哪些类型和特点 › JAVA中final关键字修饰变量的用法及深入解析【建议收藏】 |
在学习this()用法的途中,我发现使用private 修饰变量name 时,name会显黄,加上final之后就不会了。在好奇心的驱使下,进一步深入学习final用法。(基础不扎实) 最后查原因是因为IDEA会对私有变量进行特殊显示来提醒开发者的注意,加了final之后可以确保基本变量的值不被修改所以编译就不显黄了。 首先,final关键字用于确保类、方法、变量的值不被修改和继承,确保代码的安全性。其中变量是用的最多的,也是本文讲解的部分。 修饰变量final修饰变量的作用是使变量不被其他对象引用,并且可以改变第一次引用对象的内容。 好处:在多线程环境下提高线程安全性。 例如下面的例子,如果name被final修饰,则不能继续对name进行赋值,否则报错 public class Test1 { public static void main(String[] args) { final String name = "张三"; name = "李四";//报错 System.out.println(name); } }也可以不先赋值name,之后赋值 public class Test1 { public static void main(String[] args) { final String name ; name = "张三"; System.out.println(name); } }输出:张三 深入探讨——1.final修饰的变量和常规变量有什么区别?—— 先看例子: public class Test1 { public static void main(String[] args) { String hello = "hello"; final String hello1 = "hello"; String helloWorld = "helloworld"; String x = hello+"world"; String y = hello1+"world"; System.out.println(helloWorld==x); System.out.println(helloWorld==y); } }先思考下 3 2 1 答案:false true 为什么? 因为final修饰了变量hello1,编译器会自动优化将hello1看作hello这个常量,(前提一定是知道final变量值!!!),所以(hello1+“world”==“helloworld”)为true。 ——2.被final修饰的引用变量的对象的内容可以改变—— public class Test1 { public static void main(String[] args) { final Test2 test2 = new Test2(); System.out.println(++test2.i); } } class Test2{ public int i =0; }输出:1 可以看出final修饰的引用变量的对象的内容是可以改变的。 |
CopyRight 2018-2019 实验室设备网 版权所有 |